#ifndef __BSP_AD7606_H__
#define __BSP_AD7606_H__

#include "stdint.h"
#include "main.h"



#define AD7606Rst_High(GPIO,GPIO_PIN)  		HAL_GPIO_WritePin(GPIO, GPIO_PIN, GPIO_PIN_SET)
#define AD7606Rst_Low(GPIO,GPIO_PIN)     	HAL_GPIO_WritePin(GPIO, GPIO_PIN, GPIO_PIN_RESET)

#define AD7606CONVST_High(GPIO,GPIO_PIN)    HAL_GPIO_WritePin(GPIO, GPIO_PIN, GPIO_PIN_SET)
#define AD7606CONVST_LOW(GPIO,GPIO_PIN)    	HAL_GPIO_WritePin(GPIO, GPIO_PIN, GPIO_PIN_RESET)




typedef enum
{
	AD7606_CARD1 = 1,
	AD7606_CARD2,

}AD7606_CARD;


typedef enum
{
	AD7606_OS_0 = 0,
	AD7606_OS_1,
	AD7606_OS_2,
	AD7606_OS_4,
	AD7606_OS_8,
	AD7606_OS_16,
	AD7606_OS_32,
	AD7606_OS_64,
	AD7606_OS_NULL,

}AD7606_OS;

typedef enum
{
	AD7606_5V = 0,
	AD7606_10V,

}AD7606_RANGE;

void AD7606Init(AD7606_CARD drv);
void AD7606Start(AD7606_CARD drv);
void AD7606Reset(AD7606_CARD drv);
void AD760616bit_merge(uint8_t buff_8bit[],uint16_t buff_16bit[]);
void AD7606BusyIrqCallback(uint16_t *ad7606Val,uint8_t ad7606Chl,AD7606_CARD drv);
void AD7606BusyIrqCallback_8bit(uint8_t *ad7606Val,uint8_t ad7606Chl,AD7606_CARD drv);
void change_7606(float *adc_now,uint16_t *ad7606Val,AD7606_RANGE RANGE);

#endif
